A graphics processing unit (GPU) is a dedicated graphics rendering device for a computer. The GPU's of today are efficient at manipulating and displaying computer graphics, and their parallel structure makes them more effective than most general-purpose central processing units for a range of complex algorithms. CPU's can also have multiple processor cores. Like GPUs, multi-core CPU's can execute multiple operations in parallel.
Software developers that write software today would like to take advantage of this processing power in the software applications that they write. For example, in applications that require heavy processing resources, such as desktop or web-based applications that utilize a lot of graphic effects or multimedia, it would be helpful to utilize the power of the GPU or multi-core processors that are present in computers. However, while many platforms may utilize GPU or multi-core processor resources, the end developer is not typically able to easily construct applications that run on those platforms that can utilize the extra processing power contained in many computers today.